home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / sync / Sync_Wait.man < prev    next >
Text File  |  1990-06-27  |  2KB  |  44 lines

  1. \fB' $Header: /sprite/src/lib/c/sync/RCS/Sync_Wait.man,v 1.1 88/12/30 16:08:17 ouster Exp $ SPRITE (Berkeley)
  2. .so \*(]ltmac.sprite
  3. .HS Sync_Wait lib\fB 
  4. .BS
  5. .SH NAME
  6. Sync_Wait \- wait on a monitor condition variable
  7. .SH SYNOPSIS
  8. \fB#include <sync.h>\fR
  9. .sp .5
  10. \fBSync_Wait\fR(\fIconditionPtr, wakeIfSignal\fP)
  11. .SH ARGUMENTS
  12. .AS Sync_Condition *conditionPtr
  13. .AP Sync_Condition *conditionPtr in
  14. Address of a condition variable 
  15. to distinguish waiting process for later notification.
  16. .AP Boolean wakeIfSignal in
  17. This parameter is currently ignored.
  18. .BE
  19. .SH DESCRIPTION
  20. .PP
  21. \fBSync_Wait\fR allows a process using a monitor to wait for a particular condition.
  22. This routine can only be called while a monitor lock is aquired because 
  23. it is only safe to check global state while in the monitor.  
  24. This call releases the monitor lock and makes the process sleep on the
  25. condition. Other processes waiting on the monitor lock will become runnable.
  26. The process remains asleep until some other process invokes
  27. \fBSync_Broadcast\fR with the same condition variable.
  28. .PP
  29. Because broadcast semantics are used, it is possible for spurious wakeups to
  30. occur if multiple processes are awaiting the same condition.  Additionally,
  31. all processes waiting on \fI*conditionPtr\fP will be
  32. awakened simultaneously and may execute in any order.  For these
  33. reasons, when a process resumes execution it may find that the condition
  34. it was awaiting is no longer valid.  In this case,
  35. it should call \fBSync_Wait\fR again.
  36. .PP
  37. When the
  38. process awakens due to event notification through \fBSync_Broadcast\fR,
  39. \fBSUCCESS\fR is returned.
  40. .SH SEE ALSO
  41. Sync, Sync_Broadcast, Sig_Send
  42. .SH KEYWORDS
  43. synchronization, wait, block, signal, process, event
  44.